package com.xm.web.utils;

import cn.hutool.core.lang.func.VoidFunc0;

import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;

/**
 * @author yousj
 * @since 2022-03-28
 */
public class ArtfulUtil {

    /**
     * 求和
     */
    public static Long summary(Long... params) {
        return Arrays.stream(Optional.ofNullable(params).orElse(new Long[]{})).filter(Objects::nonNull).reduce((a, b) -> a + b).orElse(0L);
    }

    /**
     * 简化if else 代码
     */
    public void branchHandle(boolean isTrue, VoidFunc0 f1, VoidFunc0 f2) {
        if (isTrue) {
            f1.callWithRuntimeException();
        } else {
            f2.callWithRuntimeException();
        }
    }
}
